//
// Created by LiuYou on 2021/5/7.
//

#include <cstdio>
#include <unistd.h>
#include <fcntl.h>
#include <cstdlib>


/**
 * @brief dup
 *
 * TODO 注意:  注意main是不是写错了，或者 return 写错误
 * @return 0
 */
int main() {
    const char* const FILE_NAME = "tmp/out";

    close(1);
    int fd = open(FILE_NAME, O_WRONLY | O_CREAT | O_TRUNC, 0600);
    if (fd < 0) {
        std::perror("open()");
        std::exit(1);
    }

//    dup(fd);
//    close(fd);
    // 原子操作
    dup2(fd, 1);

    if (fd != 1) {
        close(fd);
    }


    std::puts("hello world!");

//    return 0;
}